import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;


public class InitialAttribute {
	/*
	 * This part is to initialize the attribute for particular data set
	 */
	private static HashMap<Integer,ArrayList<String>> AttributeValue;
	public static final int Type = 0;
	public static final int LifeStyle = 1;
	public static final int Vacation = 2;
	public static final int eCredit = 3;
	public static final int Salary = 4;
	public static final int Property = 5;
	public static final int Class = 6;
	public InitialAttribute(){
		AttributeValue = new HashMap<Integer,ArrayList<String>>();
		
		AttributeValue.put(InitialAttribute.Type, new ArrayList<String>());
		AttributeValue.get(InitialAttribute.Type).add("student");
		AttributeValue.get(InitialAttribute.Type).add("engineer");
		AttributeValue.get(InitialAttribute.Type).add("librarian");
		AttributeValue.get(InitialAttribute.Type).add("professor");
		AttributeValue.get(InitialAttribute.Type).add("doctor");
		
		AttributeValue.put(InitialAttribute.LifeStyle, new ArrayList<String>());
		AttributeValue.get(InitialAttribute.LifeStyle).add("spend<<saving");
		AttributeValue.get(InitialAttribute.LifeStyle).add("spend<saving");
		AttributeValue.get(InitialAttribute.LifeStyle).add("spend>saving");
		AttributeValue.get(InitialAttribute.LifeStyle).add("spend<<saving");
		AttributeValue.get(InitialAttribute.LifeStyle).add("spend>>saving");
		
		AttributeValue.put(InitialAttribute.Vacation, new ArrayList<String>());
		//AttributeValue.get(InformationGain.Vacation).add("<");
		//AttributeValue.get(InformationGain.Vacation).add("=");
		//AttributeValue.get(InformationGain.Vacation).add(">");
		AttributeValue.get(InitialAttribute.Vacation).add("<<");
		AttributeValue.get(InitialAttribute.Vacation).add("<>");
		AttributeValue.get(InitialAttribute.Vacation).add("><");
		AttributeValue.get(InitialAttribute.Vacation).add(">>");
		
		AttributeValue.put(InitialAttribute.eCredit, new ArrayList<String>());
		//AttributeValue.get(InformationGain.eCredit).add("<");
		//AttributeValue.get(InformationGain.eCredit).add(">");
		//AttributeValue.get(InformationGain.eCredit).add("=");
		AttributeValue.get(InitialAttribute.eCredit).add("<<");
		AttributeValue.get(InitialAttribute.eCredit).add("<>");
		AttributeValue.get(InitialAttribute.eCredit).add("><");
		AttributeValue.get(InitialAttribute.eCredit).add(">>");
		
		AttributeValue.put(InitialAttribute.Salary, new ArrayList<String>());
		//AttributeValue.get(InformationGain.Salary).add("<");
		//AttributeValue.get(InformationGain.Salary).add(">");
		//AttributeValue.get(InformationGain.Salary).add("=");
		AttributeValue.get(InitialAttribute.Salary).add("<<");
		AttributeValue.get(InitialAttribute.Salary).add("<>");
		AttributeValue.get(InitialAttribute.Salary).add("><");
		AttributeValue.get(InitialAttribute.Salary).add(">>");
		
		AttributeValue.put(InitialAttribute.Property, new ArrayList<String>());
		//AttributeValue.get(InformationGain.Property).add("<");
		//AttributeValue.get(InformationGain.Property).add(">");
		//AttributeValue.get(InformationGain.Property).add("=");
		AttributeValue.get(InitialAttribute.Property).add("<<");
		AttributeValue.get(InitialAttribute.Property).add("<>");
		AttributeValue.get(InitialAttribute.Property).add("><");
		AttributeValue.get(InitialAttribute.Property).add(">>");
		
	}
	
	public HashMap<Integer,ArrayList<String>> getAttributeValue(){
		return AttributeValue;
	}
	
	/**
	 * To get the attribute set
	 * @return
	 */
	public ArrayList<Integer> getAttributes(){
		ArrayList<Integer> attributesList = new ArrayList<Integer>();
		Iterator<Integer> attributes = AttributeValue.keySet().iterator();
		while(attributes.hasNext()){
			attributesList.add(attributes.next());
		}
		return attributesList;
	}
}
